package com.heima.config;

import com.heima.tools.WeatherServiceTools;
import org.springframework.ai.tool.ToolCallback;
import org.springframework.ai.tool.ToolCallbacks;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Configuration
public class CommonConfig {

    @Autowired
    private WeatherServiceTools weatherServiceTools;
    /**
     * 对外曝光工具
     * 返回值List<ToolCallback>是因为可能返回多个工具回调
     * 原理是监听weatherServiceTools这个工具类中的所有有@Tool注解的方法，并把方法封装成ToolCallback对象，返回给调用方
     */
    @Bean
    public List<ToolCallback> weatherTools(){
        //把自定义的工具添加到工具列表中
        ToolCallback[] toolCallbacks = ToolCallbacks.from(weatherServiceTools);
        return List.of(toolCallbacks);
    }
}